class Solution(object):
    def findGCD(self, nums):
        """
        :type nums: List[int]
        :rtype: int
        """
        nums.sort()
        res = []
        for i in range(1, nums[0] + 1):
            if nums[0] % i == 0 and nums[-1] % i == 0:
                res.append(i)
        return max(res)
if __name__ == '__main__':
    nums = [7,5,6,8,3]
    print(Solution().findGCD(nums))
# 思路：
# 1. 先对数组进行排序，这样可以方便地找到最大公约数。
# 2. 遍历数组，从1到数组的第一个元素，判断是否能整除数组的第一个元素和最后一个元素。
# 3. 如果能整除，则说明最大公约数就是这个数。
# 4. 最后返回最大公约数。
# 时间复杂度：O(nlogn)
# 空间复杂度：O(1)
